package com.iris.utils;

import java.util.HashMap;
import java.util.Map;

/**
 * 常见文件类型
 */
public class FileType {

	private static Map<String,String> FILE_TYPE = new HashMap<String,String>();
	static {
		FILE_TYPE.put("323", "H323 Internet 电话技术");
		FILE_TYPE.put("386", "虚拟设备驱动程序");
		FILE_TYPE.put("7Z", "压缩文件");
		FILE_TYPE.put("ACA", "Microsoft Agent Character File (HTTP format)");
		FILE_TYPE.put("ACF", "Microsoft Agent Character File (HTTP format)");
		FILE_TYPE.put("ACG", "Microsoft Agent 预览文件");
		FILE_TYPE.put("ACL", "自动更正列表文件");
		FILE_TYPE.put("ACS", "Microsoft Agent Character File");
		FILE_TYPE.put("ACW", "辅助功能向导设置");
		FILE_TYPE.put("ADE", "Microsoft Access 项目扩展");
		FILE_TYPE.put("ADN", "Microsoft Access 空白项目模板");
		FILE_TYPE.put("ADP", "Microsoft Access 项目");
		FILE_TYPE.put("AIF", "AIFF 格式声音");
		FILE_TYPE.put("AIFC", "AIFF 格式声音");
		FILE_TYPE.put("AIFF", "AIFF 格式声音");
		FILE_TYPE.put("ANI", "动画光标");
		FILE_TYPE.put("ASA", "活动服务器文档");
		FILE_TYPE.put("ASD", "ASF Stream Description File");
		FILE_TYPE.put("ASF", "Windows Media 音频/视频文件");
		FILE_TYPE.put("ASP", "活动服务器文档");
		FILE_TYPE.put("ASX", "Windows Media 音频/视频快捷方式");
		FILE_TYPE.put("AU", "AU 格式声音");
		FILE_TYPE.put("AUDIOCD", "AudioCD");
		FILE_TYPE.put("AVI", "视频剪辑");
		FILE_TYPE.put("AW", "应答向导文件");
		FILE_TYPE.put("BKF", "Windows 备份文件");
		FILE_TYPE.put("BLG", "性能监视器文件");
		FILE_TYPE.put("BMP", "BMP 图像");
		FILE_TYPE.put("CAT", "安全编录");
		FILE_TYPE.put("CDA", "CD 音频曲目");
		FILE_TYPE.put("CDF", "频道文件");
		FILE_TYPE.put("CDX", "活动服务器文档");
		FILE_TYPE.put("CER", "安全证书");
		FILE_TYPE.put("CHK", "还原了文件碎片");
		FILE_TYPE.put("CHM", "已编译的 HTML 帮助文件");
		FILE_TYPE.put("CLASS", "Java编译文件");
		FILE_TYPE.put("CLP", "剪贴板剪贴");
		FILE_TYPE.put("CNF", "快速拨号");
		FILE_TYPE.put("COL", "HTML 帮助文件");
		FILE_TYPE.put("CPL", "控制面板扩展");
		FILE_TYPE.put("CRL", "证书吊销列表");
		FILE_TYPE.put("CRT", "安全证书");
		FILE_TYPE.put("CSS", "级联样式表文档");
		FILE_TYPE.put("CSV", "Microsoft Excel 逗号分隔值文件");
		FILE_TYPE.put("CUR", "光标");
		FILE_TYPE.put("DB", "数据库文件");
		FILE_TYPE.put("DCS", "数据库内容源");
		FILE_TYPE.put("DER", "安全证书");
		FILE_TYPE.put("DESKLINK", "DESKLINK 文件");
		FILE_TYPE.put("DET", "Office Data File");
		FILE_TYPE.put("DIB", "BMP 图像");
		FILE_TYPE.put("DIC", "文本文档");
		FILE_TYPE.put("DIF", "Microsoft Excel 数据交换格式");
		FILE_TYPE.put("DLL", "应用程序扩展");
		FILE_TYPE.put("DOC", "Microsoft Word 文档");
		FILE_TYPE.put("DOCHTML", "Microsoft Word HTML 文档");
		FILE_TYPE.put("DOCMHTML", "DOCMHTML 文件");
		FILE_TYPE.put("DOT", "Microsoft Word 模板");
		FILE_TYPE.put("DOTHTML", "Microsoft Word HTML 模板");
		FILE_TYPE.put("DQY", "Microsoft Excel ODBC 查询文件");
		FILE_TYPE.put("DRV", "设备驱动程序");
		FILE_TYPE.put("DSN", "数据源名称");
		FILE_TYPE.put("DUN", "拨号网络文件");
		FILE_TYPE.put("DVD", "DVD");
		FILE_TYPE.put("ECS", "Exchange Server 内容源");
		FILE_TYPE.put("ELM", "Microsoft Office 主题文件");
		FILE_TYPE.put("EMF", "EMF 图像");
		FILE_TYPE.put("EML", "Outlook Express 邮件消息");
		FILE_TYPE.put("EXC", "文本文档");
		FILE_TYPE.put("EXE", "应用程序");
		FILE_TYPE.put("FAD", "Office 数据文件");
		FILE_TYPE.put("FAV", "FAV 文件");
		FILE_TYPE.put("FCS", "文件共享内容源");
		FILE_TYPE.put("FFA", "文件检索索引");
		FILE_TYPE.put("FFL", "文件检索索引");
		FILE_TYPE.put("FFT", "文件检索索引");
		FILE_TYPE.put("FFX", "文件检索索引");
		FILE_TYPE.put("FON", "字体文件");
		FILE_TYPE.put("FPDOCLIB", "Microsoft FrontPage Document Library");
		FILE_TYPE.put("FPHOMEOP", "Microsoft FrontPage Home Page Open");
		FILE_TYPE.put("FPHOMEPG", "Microsoft FrontPage 主页");
		FILE_TYPE.put("FPHTML", "Microsoft FrontPage HTML 文档");
		FILE_TYPE.put("FPLIST", "Microsoft FrontPage List");
		FILE_TYPE.put("FPNOPUB", "Microsoft FrontPage Dont Publish");
		FILE_TYPE.put("FPOPEN", "Microsoft FrontPage 打开文件");
		FILE_TYPE.put("FPSURVEY", "Microsoft FrontPage Survey");
		FILE_TYPE.put("FPWEB", "FPWEB 文件");
		FILE_TYPE.put("FRG", "FRG 文件");
		FILE_TYPE.put("GIF", "GIF 图像");
		FILE_TYPE.put("GRA", "Microsoft Graph 图表");
		FILE_TYPE.put("GRP", "Microsoft 程序组");
		FILE_TYPE.put("GZ", "压缩文件");
		FILE_TYPE.put("HLP", "帮助文件");
		FILE_TYPE.put("HOL", "Microsoft Outlook Holidays");
		FILE_TYPE.put("HT", "超级终端文件");
		FILE_TYPE.put("HTA", "HTML Application");
		FILE_TYPE.put("HTC", "HTC 文件");
		FILE_TYPE.put("HTM", "HTML Document");
		FILE_TYPE.put("HTML", "HTML Document");
		FILE_TYPE.put("HTT", "HyperText 模板");
		FILE_TYPE.put("HTX", "用于 Internet 数据库的 HTML 模板");
		FILE_TYPE.put("ICC", "ICC 配置文件");
		FILE_TYPE.put("ICM", "ICC 配置文件");
		FILE_TYPE.put("ICO", "图标");
		FILE_TYPE.put("ICS", "iCalendar 文件");
		FILE_TYPE.put("IDC", "IDC 文件");
		FILE_TYPE.put("III", "Intel IPhone 兼容");
		FILE_TYPE.put("INF", "安装信息");
		FILE_TYPE.put("INI", "配置设置");
		FILE_TYPE.put("INS", "Internet 通讯设置");
		FILE_TYPE.put("IQY", "Microsoft Excel Web 查询文件");
		FILE_TYPE.put("ISP", "Internet 通讯设置");
		FILE_TYPE.put("ITS", "Internet Document Set");
		FILE_TYPE.put("ITSS", "Microsoft Infotech Storage System File");
		FILE_TYPE.put("IVF", "Indeo 视频文件");
		FILE_TYPE.put("JAVA", "Java文件");
		FILE_TYPE.put("JAR", "Jar压缩包文件");
		FILE_TYPE.put("JFIF", "JPEG 图像");
		FILE_TYPE.put("JOB", "任务对象");
		FILE_TYPE.put("JOD", "Microsoft.Jet.OLEDB.4.0");
		FILE_TYPE.put("JPE", "JPEG 图像");
		FILE_TYPE.put("JPEG", "JPEG 图像");
		FILE_TYPE.put("JPG", "JPEG 图像");
		FILE_TYPE.put("JS", "JScript Script File");
		FILE_TYPE.put("JSE", "JScript Encoded Script File");
		FILE_TYPE.put("JSP", "JavaServer页面");
		FILE_TYPE.put("LDB", "Microsoft Access 记录锁定信息");
		FILE_TYPE.put("LEX", "词典文件");
		FILE_TYPE.put("LOG", "文本文档");
		FILE_TYPE.put("LWV", "Microsoft Linguistically Enhanced Sound File");
		FILE_TYPE.put("MV", "电影文件(MPEG)");
		FILE_TYPE.put("MU", "MU 文件");
		FILE_TYPE.put("MAD", "Microsoft Access 模块快捷方式");
		FILE_TYPE.put("MAF", "Microsoft Access 窗体快捷方式");
		FILE_TYPE.put("MAG", "Microsoft Access 图表快捷方式");
		FILE_TYPE.put("MAM", "Microsoft Access 宏快捷方式");
		FILE_TYPE.put("MAPIMAIL", "MAPIMAIL 文件");
		FILE_TYPE.put("MAQ", "Microsoft Access 查询快捷方式");
		FILE_TYPE.put("MAR", "Microsoft Access 报表快捷方式");
		FILE_TYPE.put("MAS", "Microsoft Access 存储过程快捷方式");
		FILE_TYPE.put("MAT", "Microsoft Access 表快捷方式");
		FILE_TYPE.put("MAU", "MAU 文件");
		FILE_TYPE.put("MAV", "Microsoft Access 视图快捷方式");
		FILE_TYPE.put("MAW", "Microsoft Access 数据访问页快捷方式");
		FILE_TYPE.put("MDA", "Microsoft Access 加载项");
		FILE_TYPE.put("MDB", "Microsoft Access 应用程序");
		FILE_TYPE.put("MDBHTML", "Microsoft Access HTML 文档");
		FILE_TYPE.put("MDE", "Microsoft Access MDE 数据库");
		FILE_TYPE.put("MDN", "Microsoft Access 空白数据库模板");
		FILE_TYPE.put("MDT", "Microsoft Access 加载项数据");
		FILE_TYPE.put("MDW", "Microsoft Access 工作组信息");
		FILE_TYPE.put("MDZ", "Microsoft Access 数据库向导模板");
		FILE_TYPE.put("MGC", "媒体目录文件");
		FILE_TYPE.put("MHT", "MHTML Document");
		FILE_TYPE.put("MHTML", "MHTML Document");
		FILE_TYPE.put("MID", "MIDI 序列");
		FILE_TYPE.put("MIDI", "MIDI 序列");
		FILE_TYPE.put("MML", "媒体目录文件");
		FILE_TYPE.put("MMM", "媒体剪辑");
		FILE_TYPE.put("MMW", "媒体目录文件");
		FILE_TYPE.put("MP2", "电影文件(MPEG)");
		FILE_TYPE.put("MP2V", "电影文件(MPEG)");
		FILE_TYPE.put("MP3", "MP3 格式声音");
		FILE_TYPE.put("MPA", "电影文件(MPEG)");
		FILE_TYPE.put("MPE", "电影文件(MPEG)");
		FILE_TYPE.put("MPEG", "电影文件(MPEG)");
		FILE_TYPE.put("MPF", "Media Package 文件");
		FILE_TYPE.put("MPG", "电影文件(MPEG)");
		FILE_TYPE.put("MPP", "Microsoft Project 文档");
		FILE_TYPE.put("MPV", "电影文件(MPEG)");
		FILE_TYPE.put("MSC", "Microsoft 通用管理文档");
		FILE_TYPE.put("MSG", "Outlook 项目");
		FILE_TYPE.put("MSI", "Windows Installer 软件包");
		FILE_TYPE.put("MSP", "Windows Installer 修补程序");
		FILE_TYPE.put("MSRCINCIDENT", "Microsoft 远程访问事件");
		FILE_TYPE.put("MSSTYLES", "Windows 可视化风格文件");
		FILE_TYPE.put("MSWMM", "Windows Movie Maker 项目");
		FILE_TYPE.put("NCS", "Lotus Notes 内容源");
		FILE_TYPE.put("NFO", "MSInfo 文档");
		FILE_TYPE.put("NICK", "Office 数据文件");
		FILE_TYPE.put("NK", "Office 数据文件");
		FILE_TYPE.put("NMW", "Microsoft NetMeeting T126 兼容白板文档");
		FILE_TYPE.put("NWS", "Outlook Express 新闻消息");
		FILE_TYPE.put("OBD", "OBD 文件");
		FILE_TYPE.put("OBT", "OBT 文件");
		FILE_TYPE.put("OBZ", "OBZ 文件");
		FILE_TYPE.put("OCX", "ActiveX 控件");
		FILE_TYPE.put("ODC", "Microsoft Office 数据连接");
		FILE_TYPE.put("ODCCUBEFILE", "ODCCUBEFILE 文件");
		FILE_TYPE.put("ODCDATABASEFILE", "ODCDATABASEFILE 文件");
		FILE_TYPE.put("ODCNEWFILE", "ODCNEWFILE 文件");
		FILE_TYPE.put("ODCTABLEFILE", "ODCTABLEFILE 文件");
		FILE_TYPE.put("OFT", "Outlook 项目模板");
		FILE_TYPE.put("OPC", "Microsoft 清理向导文件");
		FILE_TYPE.put("OPS", "Office  设置文件");
		FILE_TYPE.put("OQY", "Microsoft Excel OLAP 查询文件");
		FILE_TYPE.put("OSS", "Office 搜索");
		FILE_TYPE.put("OST", "Office 数据文件");
		FILE_TYPE.put("OTF", "OpenType 字体文件");
		FILE_TYPE.put("P10", "证书申请");
		FILE_TYPE.put("P12", "Personal Information Exchange");
		FILE_TYPE.put("P7B", "PKCS #7 证书");
		FILE_TYPE.put("P7C", "数字标识文件");
		FILE_TYPE.put("P7M", "PKCS #7 MIME 消息");
		FILE_TYPE.put("P7R", "PKCS #7 证书");
		FILE_TYPE.put("P7S", "PKCS #7 签名");
		FILE_TYPE.put("PAB", "Office 数据文件");
		FILE_TYPE.put("PBK", "拨号电话簿");
		FILE_TYPE.put("PCB", "PCB 文件 ");
		FILE_TYPE.put("PCD", "Photo CD 图像");
		FILE_TYPE.put("PCX", "PCX 图像");
		FILE_TYPE.put("PFM", "Type  字体文件");
		FILE_TYPE.put("PFX", "Personal Information Exchange");
		FILE_TYPE.put("PHP", "php页面文件");
		FILE_TYPE.put("PIP", "Microsoft Office 设置文件");
		FILE_TYPE.put("PKO", "公钥安全对象");
		FILE_TYPE.put("PMA", "性能监视器文件");
		FILE_TYPE.put("PMC", "性能监视器文件");
		FILE_TYPE.put("PML", "性能监视器文件");
		FILE_TYPE.put("PMR", "性能监视器文件");
		FILE_TYPE.put("PMW", "性能监视器文件");
		FILE_TYPE.put("PNG", "PNG 图像");
		FILE_TYPE.put("POT", "Microsoft PowerPoint 模板");
		FILE_TYPE.put("POTHTML", "Microsoft PowerPoint HTML 模板");
		FILE_TYPE.put("PPA", "Microsoft PowerPoint 加载项");
		FILE_TYPE.put("PPS", "Microsoft PowerPoint 幻灯片放映");
		FILE_TYPE.put("PPT", "Microsoft PowerPoint 演示文稿");
		FILE_TYPE.put("PPTHTML", "Microsoft PowerPoint HTML 文档");
		FILE_TYPE.put("PPTMHTML", "PPTMHTML 文件");
		FILE_TYPE.put("PRF", "msrating.dll,-3001");
		FILE_TYPE.put("PST", "Office 数据文件");
		FILE_TYPE.put("PSW", "Password Backup");
		FILE_TYPE.put("PWZ", "Microsoft PowerPoint 向导");
		FILE_TYPE.put("QDS", "目录查询");
		FILE_TYPE.put("RAR", "压缩(RAR)文件夹");
		FILE_TYPE.put("RAT", "msrating.dll,-3000");
		FILE_TYPE.put("RDP", "远程桌面连接");
		FILE_TYPE.put("REG", "注册表项");
		FILE_TYPE.put("RMI", "MIDI 序列");
		FILE_TYPE.put("RNK", "拨号快捷方式");
		FILE_TYPE.put("RQY", "Microsoft Excel OLE DB 查询文件");
		FILE_TYPE.put("RTF", "RTF 格式");
		FILE_TYPE.put("RWZ", "Office 数据文件");
		FILE_TYPE.put("SC", "Microsoft Schedule+ 应用程序");
		FILE_TYPE.put("SCD", "Microsoft Schedule+ 应用程序");
		FILE_TYPE.put("SCH", "Microsoft Schedule+ 应用程序");
		FILE_TYPE.put("SCP", "文本文档");
		FILE_TYPE.put("SCT", "Windows Script Component");
		FILE_TYPE.put("SDB", "Appfix 软件包");
		FILE_TYPE.put("SH", "Shell可执行文件");
		FILE_TYPE.put("SHB", "将快捷方式插入到文档");
		FILE_TYPE.put("SHS", "片段对象");
		FILE_TYPE.put("SHTM", "HTML Document");
		FILE_TYPE.put("SHTML", "HTML Document");
		FILE_TYPE.put("SGML", "SGML Document");
		FILE_TYPE.put("SLK", "Microsoft Excel SLK 数据导入格式");
		FILE_TYPE.put("SLL", "SLL 文件");
		FILE_TYPE.put("SND", "AU 格式声音");
		FILE_TYPE.put("SNP", "Snapshot 文件");
		FILE_TYPE.put("SPC", "PKCS # 证书");
		FILE_TYPE.put("SPL", "Shockwave Flash Object");
		FILE_TYPE.put("SQL", "数据库脚本");
		FILE_TYPE.put("SST", "Microsoft 系列证书存储");
		FILE_TYPE.put("STF", "Microsoft 安装文件");
		FILE_TYPE.put("STL", "证书信任列表");
		FILE_TYPE.put("STM", "HTML Document");
		FILE_TYPE.put("SWF", "Shockwave Flash Object");
		FILE_TYPE.put("SYS", "系统文件");
		FILE_TYPE.put("TCS", "Tahoe Server 内容源");
		FILE_TYPE.put("THEME", "Windows 主题文件");
		FILE_TYPE.put("TIF", "TIF 图像");
		FILE_TYPE.put("TIFF", "TIF 图像");
		FILE_TYPE.put("TTC", "TrueType Collection 字体文件");
		FILE_TYPE.put("TTF", "TrueType 字体文件");
		FILE_TYPE.put("TXT", "文本文档");
		FILE_TYPE.put("TGZ", "压缩(tgz)文件");
		FILE_TYPE.put("UDL", "Microsoft 数据链接");
		FILE_TYPE.put("ULS", "Internet 定位服务");
		FILE_TYPE.put("URL", "Internet 快捷方式");
		FILE_TYPE.put("VBE", "VBScript Encoded Script File");
		FILE_TYPE.put("VBS", "VBScript Script File");
		FILE_TYPE.put("VCF", "vCard 文件");
		FILE_TYPE.put("VCS", "vCalendar 文件");
		FILE_TYPE.put("VXD", "虚拟设备驱动程序");
		FILE_TYPE.put("WAB", "数字标识文件");
		FILE_TYPE.put("WAV", "波形声音");
		FILE_TYPE.put("WAX", "Windows Media 音频快捷方式");
		FILE_TYPE.put("WBK", "Microsoft Word 备份文档");
		FILE_TYPE.put("WCS", "Web 站点内容源");
		FILE_TYPE.put("WEB", "Office 数据文件");
		FILE_TYPE.put("WEBPNP", "Webpnp");
		FILE_TYPE.put("WHT", "Microsoft NetMeeting 旧白板文档");
		FILE_TYPE.put("WIZ", "Microsoft Word 向导");
		FILE_TYPE.put("WIZHTML", "Microsoft Access HTML 模板");
		FILE_TYPE.put("WLL", "WLL 文件");
		FILE_TYPE.put("WM", "Windows Media 音频/视频文件");
		FILE_TYPE.put("WMA", "Windows Media 音频文件");
		FILE_TYPE.put("WMD", "Windows Media Player 下载软件包");
		FILE_TYPE.put("WMF", "WMF 图像");
		FILE_TYPE.put("WMP", "Windows Media Player 文件");
		FILE_TYPE.put("WMS", "Windows Media Player 外观文件");
		FILE_TYPE.put("WMV", "Windows Media 音频/视频文件");
		FILE_TYPE.put("WMX", "Windows Media 音频/视频快捷方式");
		FILE_TYPE.put("WMZ", "Windows Media Player 外观程序包");
		FILE_TYPE.put("WPS", "WPS 文件");
		FILE_TYPE.put("WRI", "写入文档");
		FILE_TYPE.put("WSC", "Windows Script Component");
		FILE_TYPE.put("WSF", "Windows Script File");
		FILE_TYPE.put("WSH", "Windows Script Host Settings File");
		FILE_TYPE.put("WTX", "文本文档");
		FILE_TYPE.put("WVX", "Windows Media 音频/视频快捷方式");
		FILE_TYPE.put("XHTML", "扩展HTML文档");
		FILE_TYPE.put("XLA", "Microsoft Excel 加载宏");
		FILE_TYPE.put("XLB", "Microsoft Excel 工作表");
		FILE_TYPE.put("XLC", "Microsoft Excel 图表");
		FILE_TYPE.put("XLD", "Microsoft Excel 5.0 对话框编辑表");
		FILE_TYPE.put("XLK", "Microsoft Excel 备份文件");
		FILE_TYPE.put("XLL", "Microsoft Excel XLL 加载宏");
		FILE_TYPE.put("XLM", "Microsoft Excel 4.0 宏");
		FILE_TYPE.put("XLS", "Microsoft Excel 工作表");
		FILE_TYPE.put("XLSHTML", "Microsoft Excel HTML 文档");
		FILE_TYPE.put("XLSMHTML", "XLSMHTML 文件");
		FILE_TYPE.put("XLT", "Microsoft Excel 模板");
		FILE_TYPE.put("XLTHTML", "Microsoft Excel HTML 模板");
		FILE_TYPE.put("XLV", "Microsoft Excel VBA 模块");
		FILE_TYPE.put("XLW", "Microsoft Excel 工作区");
		FILE_TYPE.put("XML", "XML 文档");
		FILE_TYPE.put("XNK", "Exchange 快捷方式");
		FILE_TYPE.put("XSL", "XSL 样式表");
		FILE_TYPE.put("Z", "压缩文件");
		FILE_TYPE.put("ZAP", "软件安装设置");
		FILE_TYPE.put("ZIP", "压缩(zipped)文件夹");
		FILE_TYPE.put("ZOO", "压缩文件");
	}
	
	/**
	 * 根据文件后缀取文件类型描述
	 * @param fileExt 文件后缀
	 */
	public static String getFileType(String fileExt) {
		String type = FILE_TYPE.get(fileExt.toUpperCase());
		type = (type==null) ? fileExt.toUpperCase()+" 文件" : type;
		return type;
	}

}
